#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
//int func(int a)
//{
//	int b;
//	switch (a)
//	{
//	case 1:b = 30;
//	case 2:b = 20;
//	case 3:b = 16;
//	default:b = 0;
//	}
//	return b;
//}

//int main()
//{
//	int i = 0;
//	int j = 0;
//	for (i = 9; i <= 100; i+=10)
//	{
//		if (i % 10 == 9)
//		{
//			j++;
//		}
//	}
//	printf("%d\n", j);
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	for (i = 1000; i <= 2000; i++)
//	{
//		if (((i % 4 == 0) && (i % 100 != 0)) || (i % 400 == 0))
//		{
//			printf("%d ", i);
//		}
//	}
//	return 0;
//}

//int main()
//{
//	int a = 0;
//	int b = 0;
//	
//	scanf("%d %d", &a, &b);
//	while (b!=0)
//	{
//		int c = a % b;
//		a = b;
//		b = c;
//
//	}
//	printf("%d", b);
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	int n = 0;
//	int arr[10] = { 0 };
//
//	for (i = 0; i < 10; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	n = arr[0];
//	for (i = 1; i < 10; i++)
//	{
//		if (n < arr[i])
//			n = arr[i];
//	}
//	printf("%d", n);
//	return 0;
//}

//int main()
//{
//	int i = 0;
//	float sum = 0;
//	for (i = 1; i <= 100; i++)
//	{
//		if (i % 2 == 0)
//		{
//			sum = sum - 1.0 / i;
//		}
//		else
//		{
//			sum = sum + 1.0 / i;
//		}
//	}
//	printf("%f ", sum);
//	return 0;
//}

int main()
{
	int a = 0;
	int b = 0;
	int n = 0;

	scanf("%d %d", &a, &b);
	if (a > b)
	{
		a = b;
		b = a;
	}
	while (b!=0)
	{
		int c = a % b;
		a = b;
		n = b;
		b = c;
	}
	printf("%d", n);
	return 0;
}